{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "$\\newcommand\\indi[1]{{\\mathbf 1}_{\\displaystyle #1}}$\n", "$$\\newcommand\\inde[1]{{\\mathbf 1}_{\\displaystyle\\left\\{ #1 \\right\\}}}$$\n", "$$\\newcommand{\\ind}{\\inde}$$\n", "$\\newcommand\\E{{\\mathbf E}}$\n", "$\\renewcommand\\P{{\\mathbf P}}$\n", "$\\newcommand\\Cov{{\\mathrm Cov}}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Le calcul du prix d'une option \"américaine''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Le cas européen (calcul d'espérance)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On considère le modèle de Cox-Ross:\n", "$$\n", "X_0=x_0, X_{n+1}= X_{n} \\left(d\\inde{U_{n+1}=P}+u\\inde{U_{n+1}=F}\\right).\n", "$$\n", "On choisit les valeurs numériques de la façon suivante\n", "$$\n", " x_0=100, r_0=0,1, \\sigma=0,3.\n", "$$\n", "et l'on définit $p$, $r$, $u$ et $d$ en fonction de $N$ de la façon suivante~:\n", "$$\n", "p=1/2,\\;r=r_0/N,\\;u=1+\\frac{\\sigma}{\\sqrt{N}}\\; \\mbox{ et }\\; d=1-\\frac{\\sigma}{\\sqrt{N}}.\n", "$$\n", "On cherche à évaluer $\\E(f(N,X_N))$ où \n", "$$\n", " f(N,x)=\\frac{1}{(1+r)^N}\\max(K-x,0),\n", "$$\n", "avec $K=x_0=100$ et $r=0,05$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 1.1.__ Calculer ces prix d'options européennes (call et put) se ramène\n", " à des calculs d'espérance d'une fonction d'une chaîne de Markov. On\n", " implémente ici la méthode de calcul d'espérance par ''programmation\n", " dynamique''." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import math\n", "import random\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "\n", "def prix_eu(x_0,r,u,d,p,N,gain):\n", "# Calcul du prix européen à l'instant 0\n", "\n", " U=np.zeros([N+1,N+1])\n", " # U[n,k] = u(n,x^n_k) avec x^n_k = x_0 * u**k * d**(n-k)\n", " \n", " # la condition finale en N\n", " for k in range(0,N+1): # range(0,N+1) = 0,1,2 ... , N\n", " U[N,k] = gain(x_0 * u**k * d**(N-k))/(1+r)**N;\n", " #le temps décroît de N-1 à 0\n", " for n in range(N-1,-1,-1): # range(N-1,-1,-1) = {N-1,N-2,...,0} !\n", " for k in range(n+1):\n", " # écrire l'équation de programmation dynamique\n", " # U[n,k] = u(n,x^n_k) avec x^n_k = x_0 * u**k * d**(n-k)\n", " \n", " ###### A vous de jouer .....\n", "\n", " return U[0,0]\n", "\n", "def prix_eu_n(n,x_0,r,u,d,p,N,gain):\n", "# Calcul du prix a l'instant n\n", "\n", " # Pour calculer ce prix on ne change rien si ce n'est N en N-n\n", " return prix_eu(x_0,r,u,d,p,N-n,gain)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " On peut vérifier que lorsque $p=1/2$ (ou $r=0$) et $K=x_0$ le prix\n", " des puts et des calls coïncident. On le vérifie.\n", " \n", " Pour le choix classique\n", " $p=(1+r-d)/(u-d)$ (et $r\\not=0$), les prix sont différents, ce que\n", " l'on vérifie aussi." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def main_1():\n", " r_0=0.05;sigma=0.3;\n", " N=50;\n", " d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n", " r=r_0/N;\n", "\n", " x_0=100;K=100;\n", "\n", " # Lorsque p=1/2 et K=x_0 le prix du call = le prix du put (exercice!)\n", " p=1/2;K=x_0;\n", " \n", " def gain_put(x): return max(K-x,0) # Payoff du put \n", " def gain_call(x): return max(x-K,0) # Payoff du call \n", "\n", " p_put = prix_eu_n(0,x_0,r,u,d,p,N,gain_put);\n", " p_call = prix_eu_n(0,x_0,r,u,d,p,N,gain_call);\n", " if (abs(p_put - p_call) >= 0.000001) :\n", " print(\"WARNING: ces deux prix devrait coincider: \",p_put,\" <> \",p_call)\n", " else:\n", " print(\"Les deux prix coincident: \",p_put,\" <> \",p_call,end='')\n", " print(\". Parfait!\");\n", "\n", " p= (1+r-d)/(u-d)\n", " print(\"Prix du call : \",prix_eu_n(0,x_0,r,u,d,p,N,gain_call))\n", " print(\"Prix du put : \",prix_eu_n(0,x_0,r,u,d,p,N,gain_put))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Les deux prix coincident: 11.402142946815882 <> 11.40214294681589. Parfait!\n", "Prix du call : 14.285050131985198\n", "Prix du put : 9.410369101110671\n" ] } ], "source": [ "main_1()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Le cas américain (arrêt optimal)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On s'intéresse au cas d'un option américaine qui promet (en valeur actualisée en $0$), si on l'exerce à l'instant $n$\n", "pour une valeur de $X_n$ valant $x$, une valeur $f(n,x)$\n", "$$\n", " f(n,x) = \\frac{1}{(1+r)^n}\\max(K-x,0).\n", "$$\n", "On cherche à calculer son prix donné par \n", "$$\n", "u(0,x_0)=\\sup_{\\tau \\mbox{ t.a.} \\leq N} \\E(f(\\tau,X_\\tau)).\n", "$$\n", "On sait (voir le cours) que $u$ se calcule grace à l'équation de programmation dynamique suivante\n", " \\begin{equation}\\label{eq:rec} \n", " \\left\\{\n", " \\begin{array}{l}\n", " u(n,x) = \\displaystyle \\max\\left[p u(n+1,xu)+(1-p) u(n+1,xd),\\frac{1}{(1+r)^n}(K-x)_+\\right], n 8.461120344261218. C'est parfait!\n" ] } ], "source": [ "def main_2():\n", " sigma=0.3; r_0=0.1;\n", " K=100;x_0=100;\n", "\n", " N=10;\n", " r=r_0/N;\n", " d=1-sigma/math.sqrt(N);\n", " u=1+sigma/math.sqrt(N);\n", " p= (1+r-d)/(u-d);#p=1/2;\n", " \n", " def gain_put(x): return max(K-x,0) # Payoff du put \n", " def gain_call(x): return max(x-K,0) # Payoff du call \n", "\n", " prix_am(x_0,r,u,d,p,N,gain_put)\n", " prix_slow_am(x_0,r,u,d,p,N,gain_put)\n", "\n", " # Les deux algos font ils le même chose ?\n", " # on verifie : prix_slow(x_0,N) \\approx prix(x_0,N)\n", " p1=prix_slow_am(x_0,r,u,d,p,N,gain_put);\n", " p2=prix_am(x_0,r,u,d,p,N,gain_put);\n", " print(\"Ces deux prix devrait coincider (ou presque) : \",p1,\" <> \",p2,end='');\n", " if (abs(p1 - p2) >= 0.00001):\n", " print(\"WARNING: ces deux prix devrait coincider : \",p1,\" <> \",p2);\n", " else:\n", " print(\". C'est parfait!\")\n", "\n", " N=1000;d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n", " prix_am(x_0,r,u,d,p,N,gain_put)\n", "\n", "main_2()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " __Question 2.5.__ Tracer les courbes de prix américaines et européennes $x\\to v(0,x)$ pour $x\\in [80,120]$ et les\n", " supperposer au \"payoff\".\n", " \n", " On constate que le prix est toujours plus grand que le prix européen et que le gain immédiat." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt;\n", "\n", "def main_3():\n", " # tracé de courbes\n", " N=50\n", " sigma=0.3\n", " p=1/2;d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n", " K=100;x_0=100;\n", " r_0=0.1;\n", " r=r_0/N;\n", "\n", " def gain_put(x): return max(K-x,0) # Payoff du put \n", " def gain_call(x): return max(x-K,0) # Payoff du call \n", " \n", " vmin=50;\n", " vmax=150; \n", " courbe_am=np.zeros(vmax-vmin+1)\n", " courbe_eu=np.zeros(vmax-vmin+1)\n", " obstacle=np.zeros(vmax-vmin+1)\n", "\n", " n=0;\n", " x=range(vmin,vmax+1,1)\n", " for current_x in x:\n", " #courbe_am[n]= le prix américain en current_x\n", " #courbe_eu[n]= le prix européen en current_x\n", " #obstacle[n] = l'obstacle en current_x\n", " \n", " ###### A vous de jouer .....\n", "\n", " n=n+1; \n", " \n", " # On compare les courbes \"Américaines\" et \"Européennes\"\n", " plt.plot(x,courbe_eu,label='Prix \"européen\"')\n", " plt.plot(x,obstacle,label='Obstacle')\n", " plt.plot(x,courbe_am,color='red',label='Prix \"américain\"')\n", " plt.legend(loc='upper right')\n", "\n", "main_3()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 2.6.__ Regardez comment le prix évolue au fils du temps~: tracez les\n", " courbes $x\\to v(n,x)$, pour $n=0,2,5,20,50$. Ce prix est égal à $(K-x)_+$ en zéro, il croit avec $n$." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "def main_4():\n", " sigma=0.3;\n", " K=100;x_0=100;\n", "\n", " N=50;\n", " p=1/2;d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n", " r_0=0.1;r=r_0/N;\n", "\n", " def gain_put(x): return max(K-x,0) # Payoff du put \n", " def gain_call(x): return max(x-K,0) # Payoff du call \n", "\n", " vmin=50;vmax=150;\n", " # évolution de la courbe en fonction de n\n", " liste=[0,2,5,20,50]\n", " courbe_am=np.zeros([np.size(liste),vmax-vmin+1])\n", " index_n=0\n", " x=range(vmin,vmax+1,1)\n", " for N in liste:\n", " i=0;\n", " # construction de la courbe de prix si l'echéance est N\n", " for current_x in x:\n", " \n", " # courbe_am[index_n,i] = prix du put en current_x si l'echéance est N\n", " \n", " ###### A vous de jouer .....\n", "\n", " i=i+1\n", " index_n=index_n+1\n", " \n", " for n in range(index_n):\n", " text='n = '+str(liste[n])\n", " plt.plot(x,courbe_am[n,:],label=text)\n", " plt.legend(loc='upper right')\n", " \n", "main_4()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 2.7__ Que constatez vous lorsque $N$ augmente ($N=10,100,200,500$) et\n", " que l'on choisit $r$, $u$ et $d$ en fonction de $N$ comme définis\n", " plus haut ($r=r_0/N$, $d=1-\\sigma/\\sqrt{N}$, $u=1+\\sigma/\\sqrt{N}$).\n", " \n", "__Commentaire:__ lorsque $N$ tend vers $+\\infty$ dans ces\n", " conditions, les prix convergent vers le prix d'un modèle continu (le\n", " célèbre modèle de Black et Scholes). Dans le cas européen, le\n", " résultat se prouve grâce au théorème de la limite centrale (cours \n", " du premier semestre). Dans le cas américain qui nous intéresse, c'est \n", " plus compliqué, mais ca reste vrai !" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def main_5():\n", " # Avec cet algorithme on peut augmenter N\n", " # mais il faut renormaliser convenablement u et d pour obtenir une convergence.\n", " # Essayer avec N=10,100,200,...,1000\n", "\n", " sigma=0.3\n", " K=100\n", " x_0=100\n", " r_0=0.1\n", " p=1/2\n", " N=50\n", "\n", " def gain_put(x): return max(K-x,0) # Payoff du put \n", "\n", " vmin=50;vmax=150;\n", " courbe=np.zeros(vmax-vmin+1)\n", " x=range(vmin,vmax+1,1)\n", " for N in [2,5,20,100]:\n", " # Une renormalisation convenable\n", " # pour converger vers un modèle de Black et Scholes\n", " r=r_0/N;\n", " d=1-sigma/math.sqrt(N);\n", " u=1+sigma/math.sqrt(N);\n", " n=0;\n", " for current_x in x:\n", " text='N = '+str(N)\n", " \n", " # courbe[n]= prix américain avec les paramètres r,d,u\n", "\n", " ###### A vous de jouer .....\n", "\n", " n=n+1; \n", " plt.plot(x,courbe,label=text);\n", " plt.legend(loc='upper right')\n", "\n", "main_5()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Simulation selon la loi du temps optimal" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On va chercher à se faire une idée du temps d'exercice optimal en simulant sa loi. On verra que cette loi a des formes variées en fonction de la valeur initiale." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 2.8__ Ecrire une fonction qui simule le vecteur\n", " $(Bin(0),Bin(1),\\ldots,Bin(N))$ du nombre de piles cumulé successif dans des $N$\n", " tirages à pile ou face $(p,1-p)$. Par convention $Bin(0)=0$.\n", "\n", " Le vecteur $Bin$ permet d'exprimer $X(n)$, la valeur en $n$ du modèle de Cox-Ross, sous la forme:\n", " $$\n", " X(n)=x_0 u^{Bin(n)} d^{n-Bin(n)}.\n", " $$" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 1 2 3 4]\n" ] } ], "source": [ "def simul_bin(N,p):\n", "# sommes partielles du nombre de tirages \"up\" (=u) \n", "# dans N tirages à pile ou face (p,1-p)\n", "\n", " unif=np.random.rand(N+1) # N+1 tirages uniformes dans [0,1], on n'utilise pas le tirage \"0\"\n", " Bin=np.zeros(N+1,dtype=int) \n", " # Bin(0)=0, on commence donc a n=1 \n", " for n in range(1,N+1):# range(1,N+1) = 1, ..., N\n", " # tirages a pile ou face (p,1-p)\n", " \n", " # On cumule des tirages de Bernouilli successifs\n", "\n", " ###### A vous de jouer .....\n", "\n", " return Bin;\n", "\n", "# simul_bin(5,1/2) est un vecteur de dimension 6 : Bin(0),...,Bin(5). Bin(0) vaut toujours 0.\n", "print(simul_bin(5,1/2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 2.9__ Calculer la prix américain en conservant dans un vecteur $V(n,k)$ les valeurs en l'instant $n$ et au point $X[k]=x_0 u^{k} d^{n-k}$. $k$ varie de $0$ à $n$. Il suffit de modifier legérement l'algorithme de la __question 2.3__ en stockant les valeurs." ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ "def prix_am_vect(x_0,r,u,d,p,N,gain):\n", "# On calcule les valeurs de \"v(n,x)\" (voir question précédente)\n", "# mais, ici, on les conserve dans un vecteur \"V\"\n", "# ce qui évitera d'avoir à les re-calculer un grand \n", "# nombre de fois lors des simulations.\n", " V=np.zeros([N+1,N+1])\n", " for k in range(N+1):\n", " x=x_0 * u**k * d**(N-k) # le point de calcul\n", " V[N,k]=gain(x) # Valeur de U en N\n", "\n", " for n in range(N-1,-1,-1): # le temps decroit de N-1 a 0\n", " for k in range(n+1): # k varie de 0 a n\n", " x = x_0 * u**k * d**(n-k) # le point de calcul\n", " \n", " # V[n,k]= ...\n", "\n", " ###### A vous de jouer .....\n", "\n", " return V" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 2.10__ A partir d'une trajectoire du modèle de Cox-Ross donnée par le vecteur\n", " $Bin$ et des valeurs de $V$ précédemment calculées, évaluer le\n", " temps d'arrêt optimal associé à cette trajectoire. \n", " \n", " Pour des raisons techniques, on est obligé de rajouter \"& (gain_immediat > 0)\" à la condition \n", " d'exercice classique (le gain immediat = la valeur courrante de $v$). Cette condition est naturelle, \n", " puisque si le gain immédiat est nul, on n'a aucun intérêt à exercer en cet instant, bien sûr." ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "def temps_optimal_option(x_0,u,d,Bin,V,gain):\n", " # Bin est la somme cumulée de tirages de Bernouilli indépendants\n", " # Calcule le temps d'arrêt optimal associé à la trajectoire \n", " # (X(0),X(1),...,X(N)) où X(n) = x_0 * u**Bin(n) * d**(n-Bin(n))\n", "\n", " for n in range(np.size(Bin)):\n", " x_n=x_0 * u**Bin[n] * d**(n-Bin[n]) # Valeur de X(n) pour ce tirage\n", " Valeur = V[n,Bin[n]] # Calcul de V(n,X(n)) que l'on a pre-calculé\n", " gain_immediat = gain(x_n) # le gain si on exerce en n\n", " \n", " # condition d'exercice\n", " # if (...) & (gain_immediat > 0) : return n\n", " \n", " ###### A vous de jouer .....\n", "\n", " return N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Voici un programme qui permet de tracer des histogrammes. " ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "def histo_discret(samples, maxsize,titre):\n", "# histogramme de tirages selon une loi discrète à valeurs entières\n", "# supposé prendre des valeurs entre 0 et maxsize.\n", " size, scale = 20000, 100\n", " my_histo = pd.Series(samples)\n", " my_histo.plot.hist(grid=True, bins=maxsize+1, rwidth=2, color='#607c8e',range=[0,maxsize])\n", " plt.title(' ')\n", " plt.xlabel(titre)\n", " plt.ylabel(' ')\n", " plt.grid(axis='y', alpha=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simuler un grand nombre de trajectoires du modèle de Cox-Ross et\n", " les valeurs des temps d'arrêt associés à ces trajectoires. Tracer\n", " un histogramme de la loi du temps d'arrêt optimal. Faire varier les\n", " valeurs de $x_0$ ($x_0=60,70,80,100,120)$) et voir l'influence de\n", " ce choix sur le loi du temps d'arrêt optimal." ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "def un_test(x_0,N):\n", " # paramètres du modèle et de l'option\n", " sigma=0.3\n", " p=1/2;d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N)\n", " K=100\n", " r_0=0.1\n", " r=r_0/N\n", " # payoff (ou gain) de l'option put\n", " def gain_put(x): return max(K-x,0) \n", "\n", " # calcul de la fonction v\n", " V=prix_am_vect(x_0,r,u,d,p,N,gain_put)\n", "\n", " # \"Nbre\" tirages selon la loi du temps d'arrêt optimal\n", " Nbre=1000;\n", " tau=np.zeros(Nbre,dtype=int)\n", " for j in range(Nbre):\n", " \n", " # commencez par simuler des Bernouillis cumulées (voir plus haut),\n", " # puis en déduire un tirage selon la loi du temps d'arrêt optimal\n", " \n", " ###### A vous de jouer .....\n", "\n", " histo_discret(tau,N,'Temps optimal')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Expérimenter pour diverses valeurs de $x_0$. On vous suggère $x_0=K=100$, puis $x_0=60, 70, 80, 100, 120$. Vous constaterez que la loi de $\\tau$ varie considérablement." ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# un test simple \"at the money\" |$(K=x_0)$|\n", "N=50\n", "x_0=100;tau=un_test(x_0,N)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ " N=50\n", " x_0=60;tau=un_test(x_0,N) # lorsque x_0 << K, on exerce toujours en 0" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ " N=50\n", " x_0=70;tau=un_test(x_0,N) # on augmente x_0, on n'exerce plus (jamais) en 0" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "N=50\n", "x_0=80;tau=un_test(x_0,N) # On exerce de plus en plus tard ..." ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "N=50\n", "x_0=100;tau=un_test(x_0,N)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "N=50\n", "x_0=120;tau=un_test(x_0,N) # Le plus souvent en N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " __Question 2.11__ Le cas du call (l'option dont le gain instantané vaut $(x-K)_+$) est très particulier. On peut montrer que dans ce cas, l'option ne s'exerce qu'à échéance. On le vérifie, ici, par simulation." ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "# Teste le cas du call (x-K)_+\n", "# qui ne s'exerce jamais avant l'écheance N.\n", "# Le fait que le prix eu du call soit toujours plus grand \n", "# que l'obstacle permet de le prouver rigoureusement (pourquoi?).\n", " \n", "def main_8():\n", " sigma=0.3; r_0=0.1\n", " K=100;x_0=100\n", " N=50\n", " r=r_0/N\n", " u=(1+r)*math.exp(sigma/math.sqrt(N));d=(1+r)*math.exp(-sigma/math.sqrt(N))\n", " p=1/2; #p= (1+r-d)/(u-d); # en principe pour Cox-Ross\n", " \n", " def gain_call(x): return max(x-K,0) # Payoff du call \n", " \n", " V_call=prix_am_vect(x_0,r,u,d,p,N,gain_call)\n", " Nbre=1000\n", " tau=np.zeros(Nbre)\n", " for j in range(Nbre):\n", " Bin=simul_bin(N,p)\n", " tau[j]=temps_optimal_option(x_0,u,d,Bin,V_call,gain_call)\n", " histo_discret(tau,N,'Temps optimal')" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAE6pJREFUeJzt3XGwpXV93/H3R1YlsMICG7YMu+kSs5NqaQS8BSJpcpd1LBAnSzrSmqa6ZXB2MkNSDEkryZTB2NjimHGNM6kzO0JdU+NKUAO1WiULN4Ym0LCKLLg6rJTizm5ZKaCuYgzx2z/O74bjcpH93d17Dvee92vmznme3/N7nvP7wtn7uc/znPM7qSokSTpcLxr3ACRJi4vBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4GhySpi8EhSepicEiSuhgckqQuBockqYvBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4GhySpy7JxD2AhrFy5stauXTvv/b/97W9z/PHHH70BvcBNWr1gzZPCmvvs3Lnzsar60efrtySDY+3atdxzzz3z3n9mZobp6emjN6AXuEmrF6x5UlhznyT/53D6ealKktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHVZsOBIcmOSA0nuH2o7OcltSR5sjye19iR5X5I9Se5Lcs7QPpta/weTbFqo8UqSDs9CnnF8ELjokLZrgB1VtQ7Y0dYBLgbWtZ/NwPthEDTAdcB5wLnAdbNhI0kajwULjqr6HPD4Ic0bgW1teRtw6VD7h2rgLmBFktOAfwrcVlWPV9UTwG08O4wkSSM06k+Or6qq/QBVtT/Jqa39dOBrQ/32trbnan+WJJsZnK2watUqZmZm5j3IgwcPHtH+i82k1QvWPCmWcs0P7zswZ/vKE45b8JpfKFOOZI62+iHtz26s2gpsBZiamqojmWZg0qYpmLR6wZonxVKu+fJrt8zZvmnD2Qte86jfVfVouwRFe5yNzL3AmqF+q4F9P6RdkjQmow6OW4HZd0ZtAm4Zan9ze3fV+cA32iWtzwCvS3JSuyn+utYmSRqTBbtUleQjwDSwMsleBu+Ouh64KckVwCPAZa37p4BLgD3Ad4DLAarq8ST/Afir1u8dVXXoDXdJ0ggtWHBU1S89x6YNc/Qt4MrnOM6NwI1HcWiSpCPgJ8clSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUZS3Ak+fUkDyS5P8lHkhyb5Iwkdyd5MMlHk7yk9X1pW9/Ttq8dx5glSQMjD44kpwP/BpiqqjOBY4A3Au8CtlTVOuAJ4Iq2yxXAE1X1E8CW1k+SNCbjulS1DPiRJMuA44D9wIXAzW37NuDStryxrdO2b0iSEY5VkjQkVTX6J02uAt4JPAV8FrgKuKudVZBkDfDpqjozyf3ARVW1t237KnBeVT12yDE3A5sBVq1a9ert27fPe3wHDx5k+fLl895/sZm0esGaJ8VSrvnhfQfmbF95wnHzrnn9+vU7q2rq+fotm9fRj0CSkxicRZwBPAn8MXDxHF1nE22us4tnpV1VbQW2AkxNTdX09PS8xzgzM8OR7L/YTFq9YM2TYinXfPm1W+Zs37Th7AWveRyXql4L/O+q+npV/Q3wceA1wIp26QpgNbCvLe8F1gC07ScCj492yJKkWeMIjkeA85Mc1+5VbAC+BNwBvKH12QTc0pZvbeu07bfXOK6vSZKAMQRHVd3N4Cb354FdbQxbgbcBVyfZA5wC3NB2uQE4pbVfDVwz6jFLkp4x8nscAFV1HXDdIc0PAefO0fe7wGWjGJck6fn5yXFJUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV3GEhxJViS5OcmXk+xO8tNJTk5yW5IH2+NJrW+SvC/JniT3JTlnHGOWJA2M64zj94H/UVX/AHgVsBu4BthRVeuAHW0d4GJgXfvZDLx/9MOVJM0aeXAkOQH4WeAGgKr6XlU9CWwEtrVu24BL2/JG4EM1cBewIslpIx62JKkZxxnHjwNfB/5Lki8k+UCS44FVVbUfoD2e2vqfDnxtaP+9rU2SNAbLxvSc5wC/VlV3J/l9nrksNZfM0VbP6pRsZnApi1WrVjEzMzPvAR48ePCI9l9sJq1esOZJsZRr/rlXzP338yhqHkdw7AX2VtXdbf1mBsHxaJLTqmp/uxR1YKj/mqH9VwP7Dj1oVW0FtgJMTU3V9PT0vAc4MzPDkey/2ExavWDNk2Ip13z5tVvmbN+04ewFr3nkl6qq6v8CX0vyk61pA/Al4FZgU2vbBNzSlm8F3tzeXXU+8I3ZS1qSpNEbxxkHwK8BH07yEuAh4HIGIXZTkiuAR4DLWt9PAZcAe4DvtL6SpDEZS3BU1b3A1BybNszRt4ArF3xQkqTD4ifHJUldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV0MDklSF4NDktTF4JAkdTE4JEldDA5JUheDQ5LUxeCQJHUxOCRJXQwOSVIXg0OS1MXgkCR1MTgkSV3GFhxJjknyhSSfbOtnJLk7yYNJPprkJa39pW19T9u+dlxjliSN94zjKmD30Pq7gC1VtQ54AriitV8BPFFVPwFsaf0kSWMyluBIshr4eeADbT3AhcDNrcs24NK2vLGt07ZvaP0lSWOQqhr9kyY3A/8JeBnwm8C/Bu5qZxUkWQN8uqrOTHI/cFFV7W3bvgqcV1WPHXLMzcBmgFWrVr16+/bt8x7fwYMHWb58+bz3X2wmrV6w5kmxlGt+eN+BOdtXnnDcvGtev379zqqaer5+y+Z19COQ5PXAgaramWR6tnmOrnUY255pqNoKbAWYmpqq6enpQ7sctpmZGY5k/8Vm0uoFa54US7nmy6/dMmf7pg1nL3jNIw8O4ALgF5JcAhwLnAC8F1iRZFlVPQ2sBva1/nuBNcDeJMuAE4HHRz9sSRKM4R5HVf1WVa2uqrXAG4Hbq+qXgTuAN7Rum4Bb2vKtbZ22/fYax/U1SRLwwvocx9uAq5PsAU4BbmjtNwCntPargWvGND5JEuO5VPV3qmoGmGnLDwHnztHnu8BlIx2YJOk5vZDOOCRJi4DBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4GhySpi8EhSepicEiSuhgckqQuBockqYvBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4GhySpi8EhSepicEiSuhgckqQuBockqYvBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4jD44ka5LckWR3kgeSXNXaT05yW5IH2+NJrT1J3pdkT5L7kpwz6jFLkp4xjjOOp4HfqKpXAOcDVyZ5JXANsKOq1gE72jrAxcC69rMZeP/ohyxJmjXy4Kiq/VX1+bb8LWA3cDqwEdjWum0DLm3LG4EP1cBdwIokp4142JKkJlU1vidP1gKfA84EHqmqFUPbnqiqk5J8Eri+qu5s7TuAt1XVPYccazODMxJWrVr16u3bt897XAcPHmT58uXz3n+xmbR6wZonxVKu+eF9B+ZsX3nCcfOuef369Turaur5+i2b19GPgiTLgY8Bb62qbyZ5zq5ztD0r7apqK7AVYGpqqqanp+c9tpmZGY5k/8Vm0uoFa54US7nmy6/dMmf7pg1nL3jNY3lXVZIXMwiND1fVx1vzo7OXoNrjbJzuBdYM7b4a2DeqsUqSftA43lUV4AZgd1W9Z2jTrcCmtrwJuGWo/c3t3VXnA9+oqv0jG7Ak6QeM41LVBcCbgF1J7m1tvw1cD9yU5ArgEeCytu1TwCXAHuA7wOWjHa4kadjIg6Pd5H6uGxob5uhfwJULOihJ0mHzk+OSpC4GhySpi8EhSepicEiSuhgckqQuBockqYvBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4GhySpi8EhSepicEiSuhgckqQuBockqYvBIUnqYnBIkroYHJKkLgaHJKmLwSFJ6mJwSJK6GBySpC4GhySpi8EhSepicEiSuhgckqQuBockqYvBIUnqYnBIkroYHJKkLosmOJJclOQrSfYkuWbc45GkSbUogiPJMcAfABcDrwR+KckrxzsqSZpMiyI4gHOBPVX1UFV9D9gObBzzmCRpIi0b9wAO0+nA14bW9wLnDXdIshnY3FYPJvnKETzfSuCxI9h/sZm0esGaJ8XE1fzB3z2imv/+4XRaLMGROdrqB1aqtgJbj8qTJfdU1dTRONZiMGn1gjVPCmteGIvlUtVeYM3Q+mpg35jGIkkTbbEEx18B65KckeQlwBuBW8c8JkmaSIviUlVVPZ3kV4HPAMcAN1bVAwv4lEflktciMmn1gjVPCmteAKmq5+8lSVKzWC5VSZJeIAwOSVIXg2PIJExrkuTGJAeS3D/UdnKS25I82B5PGucYj7Yka5LckWR3kgeSXNXal2zdSY5N8r+SfLHV/Dut/Ywkd7eaP9rebLJkJDkmyReSfLKtL/V6H06yK8m9Se5pbQv+ujY4mgma1uSDwEWHtF0D7KiqdcCOtr6UPA38RlW9AjgfuLL9v13Kdf81cGFVvQo4C7goyfnAu4AtreYngCvGOMaFcBWwe2h9qdcLsL6qzhr67MaCv64NjmdMxLQmVfU54PFDmjcC29ryNuDSkQ5qgVXV/qr6fFv+FoNfLKezhOuugYNt9cXtp4ALgZtb+5KqOclq4OeBD7T1sITr/SEW/HVtcDxjrmlNTh/TWEZtVVXth8EvWeDUMY9nwSRZC5wN3M0Sr7tdtrkXOADcBnwVeLKqnm5dltpr/L3AvwO+39ZPYWnXC4M/Bj6bZGebdglG8LpeFJ/jGJHnndZEi1uS5cDHgLdW1TcHf5AuXVX1t8BZSVYAnwBeMVe30Y5qYSR5PXCgqnYmmZ5tnqPrkqh3yAVVtS/JqcBtSb48iif1jOMZkzytyaNJTgNojwfGPJ6jLsmLGYTGh6vq4615ydcNUFVPAjMM7u+sSDL7B+NSeo1fAPxCkocZXGa+kMEZyFKtF4Cq2tceDzD44+BcRvC6NjieMcnTmtwKbGrLm4BbxjiWo65d674B2F1V7xnatGTrTvKj7UyDJD8CvJbBvZ07gDe0bkum5qr6rapaXVVrGfzbvb2qfpklWi9AkuOTvGx2GXgdcD8jeF37yfEhSS5h8FfK7LQm7xzzkI66JB8BphlMN/0ocB3wJ8BNwI8BjwCXVdWhN9AXrSQ/A/w5sItnrn//NoP7HEuy7iQ/xeDG6DEM/kC8qarekeTHGfxFfjLwBeBfVdVfj2+kR1+7VPWbVfX6pVxvq+0TbXUZ8EdV9c4kp7DAr2uDQ5LUxUtVkqQuBockqYvBIUnqYnBIkroYHJKkLn5yXEtae2vijrb694C/Bb7e1s9t85K9oCW5EPhOVd3V1q9kMJXGh4/CsfcCZ7YPCUqHxeDQklZV/4/B7LAkeTtwsKp+b6yD6nch8BhwF0BV/cF4h6NJ56UqTawkm9p3Vtyb5D8neVGSZUmeTPLuJJ9P8pkk5yX5syQPtQ+JkuQtST7Rtn8lyb9v7S9L8un2PRj3J3nDHM97TvuOiPuSfCzJia39ziTvTfKX7TsWppK8HHgL8G/bOF+T5HeTvHVon/ck+fMkX2r7fKJ9F8Pbh57zv7WJ8B5I8pYR/OfVEmZwaCIlORP4ReA1VXUWg7PvN7bNJwKfrapzgO8Bbwc2AJcB7xg6zLltn3OAf5nkLOAS4OGqelVVnclgVtpD/VcG3w/yU8BXgGuHtr20qn6awfdKfKCqvspgmvB3t+9c+Is5jvdUVf0TBtOq/AnwK8A/AjbPTjsCbKqqVwP/GLh6Ib7cR5PD4NCkei2DX6L3tKnHfw54edv2VFXN/sLfBcy0qbl3AWuHjvGZqnqiqr7N4Bf2zwD3MfjSpOuTXFBV3xh+0nbP5diqurM1bQN+dqjLRwCq6nbg1Daj7/OZnVNtF7Crqh6tqu8CDzOY2A/g15N8EfjL1vbyZx1FOkze49CkCoP5yK79gcbBTKrDN8y/z+Db9GaXh//NHDpfT1XV7iRTDM483p3kk1X1Hw953h/mWcd8nv4cMr7heZi+DyxL8loG4XR+VT2V5E7g2MM4rjQnzzg0qf4U+OdJVsLgTCDJj3Ue43VJViQ5jsG3rv3PJKczuAH/h8B7GFzG+jtV9RjwVJLXtKY3AX821OVftPFMA4+2s5lvAS/rHNuwE4HHW2j8QwZnWtK8ecahiVRVu5L8DvCnSV4E/A2DewM939dwJ/BHDC77/GFV3dtunl+f5PsMzlx+ZY793gS8v013vge4fGjbN5P8BYOgmG2/BfjjJP8MuLJjfLP+O4P7HV8EvsxgVmBp3pwdV5qH9s6kM6vqrUfxmHcCv1pV9x6tY0oLwUtVkqQunnFIkrp4xiFJ6mJwSJK6GBySpC4GhySpi8EhSery/wGeZO42sPssQgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "main_8() # un call sans dividende s'exerce toujours à l'instant N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 2.12__ Probabilité d'exercice anticipé." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Évaluer la probabilité d'exercice anticipé (i.e. $\\P(\\tau < N)$,\n", " si $\\tau$ est le temps d'arrêt optimal. Vérifier par simulation que\n", " cette probabilité est strictement positive (pour le put). Elle décroit en fonction de $x_0$." ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "def compute_proba(x_0,N):\n", " # Proba que tau (K-x)_+$ si et seulement si $x>s(n)$. Autrement \n", "dit le point où $V(n,x)$ se détache de $(K-x)_+$.\n", "\n", "On doit exercer l'option lorsque $X_n < s(n)$, attendre sinon.\n", "\n", "Pour mieux comprendre, consulter le dessin correspondant à la __question 2.5__." ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [], "source": [ "def frontiere(N,x_0,u,d,V,gain):\n", " # Calcule la frontière d'exercice t -> s(t) t\\in[0,N]\n", " # à partir du tableau V[n,j]\n", " s=np.zeros(N+1);\n", " for n in range(N):\n", " for k in range(n+1):\n", " # Dans le cas du put, on cherche le premier point ou le prix est strictement \n", " # supérieur au gain immédiat. \n", " x=x_0*u**k *d**(n-k);\n", " \n", " ###### A vous de jouer .....\n", "\n", " # Le cas n=N est particulier (puisque V[N,j] est exactement égal à gain(x_j)),\n", " # on prolonge avec la valeur précédente pour avoir un beau dessin.\n", " s[N]=s[N-1] \n", " return s\n", "\n", "def main_10(): \n", " N=1000;\n", " r_0=0.05;r=r_0/N;\n", " sigma=0.3;\n", " K=100;\n", " x_0=60;# pour avoir un joli dessin sans artéfacts, \n", " # il est préférable de partir d'une valeur x_0 proche de la valeur de la fontière en 0.\n", " # Vous pouvez expérimenter avec d'autres valeurs plus petites et plus grande \n", " # chercher à interpréter ce qui se passe. Ce n'est pas si facile ...\n", " p=1/2;d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n", " def gain_put(x): return max(K-x,0) # Payoff du put \n", "\n", " V=prix_am_vect(x_0,r,u,d,p,N,gain_put);\n", " front=frontiere(N,x_0,u,d,V,gain_put);\n", " plt.plot(front,label='frontière');\n", " plt.legend(loc='upper right')\n" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "main_10()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. Un problème de recrutement" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On reçoit, consécutivement, $N$ candidats à un poste. Les\n", "circonstances m'imposent de décider tout de suite du recrutement (soit\n", "on recrute la personne que l'on vient de recevoir, soit on la refuse\n", "définitivement). On cherche à maximiser la proabilité de recruter le\n", "meilleur candidat. Quelle est la meilleure stratégie ?\n", "\n", "On a vu en cours que l'on peut se ramener à $(S_1,\\ldots,S_N)$ est une\n", "suite de variables aléatoires indépendantes de Bernouilli $1/n$, qui\n", "est une chaîne de Markov sur l'espace $E=\\{0,1\\}$, non homogène, de\n", "matrice de transition, dépendant du temps, $P_n$\n", "$$\n", "\\begin{array}{lcl}\n", " P_n(0,0)&=&P_n(1,0)=1-\\frac{1}{n+1}=\\frac{n}{n+1},\\\\\n", " P_n(0,1)&=&P_n(1,1)=\\frac{1}{n+1}.\n", "\\end{array}\n", "$$\n", "On chercher à maximiser $\\P(\\tau\\;\\mbox{ est le\n", " meilleur})=\\E\\left(\\frac{\\tau}{N} S_\\tau\\right)$ (voir les transparents pour une preuve) parmi tous les\n", "temps d'arrêt." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 3.1__ Ecrire un programme _Python_ qui calcule la solution\n", " $(u(n,0\\mbox{ ou } 1),0\\leq n \\leq N)$ de l'équation de\n", " programmation dynamique donnée par (voir cours)\n", " $$\n", " \\left\\{\n", " \\begin{array}{l}\n", " u(n,x) = \\max\\Big\\{ \\frac{n}{n+1} u(n+1,0) + \\frac{1}{n+1} u(n+1,1),\\frac{n}{N} x\\Big\\}, n" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "main_11()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 3.3__ Interprétez $u(n=0,s=1)$ comme la probabilité de choisir\n", "le meilleur candidat avec la stratégie optimale. Tracer la courbe\n", "$N$ donne\n", "$$\n", " \\P(\\mbox{Le candidat choisi par une stratégie optimale est le\n", " meilleur}),\n", "$$\n", "pour $N=10,25,50,100,250,500,1000$. Vérifier numériquement qu'elle converge vers $1/e\\approx 37\\%$.\n", " " ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [], "source": [ "def main_12():\n", " # u(0,1) = P(succés pour la stratégie optimale)\n", " # On vérifie que cette proba tends vers 1/e ~ 37\\%\n", " valeurs=[10,15,20,25,30,40,50,60,70,80,100,150,200,250,500,1000];\n", " courbe=np.zeros(np.size(valeurs));\n", "\n", " i=0;\n", " for N in valeurs:\n", " \n", " # calculer la probabilité d'obtenir le meilleur, avec la stratégie optimale, pour N candidats\n", " \n", " ###### A vous de jouer .....\n", "\n", " i=i+1;\n", "\n", " plt.plot(valeurs,courbe)" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "main_12()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Calcul et simulation du temps d'arrêt optimal" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vérifier que l'on a $u(n,0) > 0$ pour tout $n 0 = f(n,0)$, et le temps optimal ne peut donc être atteint avec $S_n=0$ lorsque $n" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def main_13():\n", " # Vérification que temps_min vaut environ |$N/e$|.\n", " Taille=1000;\n", " x=np.zeros(Taille+1)\n", " for N in range(1,Taille+1):\n", " x[N]=temps_min(N)/N;\n", " e=math.exp(1)\n", " x=x-1/e;\n", " plt.plot(range(Taille+1),x);\n", " \n", "main_13()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ecrire une fonction qui calcule la suite des rangs d'insertion ($R$ dans le cours)\n", " d'une permutation et une fonction qui calcule la permutation\n", " définie par ses rangs d'insertion successifs." ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rangs d'insertion: [1 2 2 1 1 6 3 7 9 1]\n", "[ 5 7 6 3 2 9 4 8 10 1] ?=? [ 5 7 6 3 2 9 4 8 10 1]\n" ] } ], "source": [ "def Omega2R(omega):\n", "# Calcule les rangs d'insertion d'une permutation omega donnée\n", " R=np.zeros(np.size(omega),dtype=int) # crée u tableau d'entier\n", " for n in range(np.size(omega)):\n", " # classe le vecteur omega[1,...,n] en croissant\n", " y=np.sort(omega[0:n+1]);\n", " # R(n) = le classement de omega(n) parmi les n premiers\n", " R[n]=np.where(y==omega[n])[0][0]+1\n", " return R\n", "\n", "def R2Omega(R):\n", " # Calcule omega connaissant les rangs d'insertion\n", " iomega=np.zeros(0,dtype=int);# crée u tableau d'entier\n", " for n in range(np.size(R)):\n", " # J'insére n à l'indice R[n]\n", " iomega=np.concatenate([iomega[0:int(R[n]-1)],[n+1],iomega[int(R[n]-1):n+1]])\n", " # On inverse la permutation\n", " omega=np.zeros(np.size(R),dtype=int)# crée u tableau d'entier\n", " for n in range(np.size(omega)):\n", " omega[int(iomega[n]-1)]=int(n+1)\n", " return omega\n", "\n", "def main_14():\n", " # test sur une permutation\n", " N=10\n", " omega=np.random.permutation(N)+1# tirage d'une permutation aléatoire.\n", " R=Omega2R(omega)\n", " print(\"rangs d'insertion: \",R)\n", " \n", " # Retrouve t'on omega ?\n", " omega2=R2Omega(R)\n", " print(omega,end='')\n", " print(' ?=? ',end='')\n", " print(omega2)\n", "\n", "main_14()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " __Question 3.6__ Vérifier par simulation que la probabilité d'obtenir le meilleur\n", " candidat, lorsque l'on utilise la stratégie optimale, est de l'ordre\n", " de $1/e\\approx 37\\%$. Ce qui n'est pas génial, mais c'est le mieux\n", " que l'on puisse faire (sans connaitre l'avenir!)." ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [], "source": [ "def temps_optimal(omega,N):\n", "# Calcule le temps d'arret optimum\n", "# pour la permutation |$\\omega$| \n", "\n", " # Calcule la suite R à partir de omega (omega->R)\n", " R=Omega2R(omega);\n", " # calcul de tau_min\n", " u=compute_u(N);\n", " tau_min=temps_min(N);\n", " # Le temps optimal se situe après tau_min et c'est le premier instant\n", " # où R(n)=S(n)=1 apres ce temps, sauf si n=N, auquel cas on est oblige\n", " # de prendre le dernier candidat.\n", " for n in range(tau_min,N+1): # = tau_min, tau_min+1, ... , N\n", " if R[n-1]==1: # n-1 parce que les indices de R varie de 0 a n-1\n", " if u[n,1] == n/N: # à vrai dire cette condition n'est pas indispensable\n", " # car après tau_min, cette égalité est forcément vérifiée\n", " break\n", " # Si on sort de cette boucle avec n=N et N est bien optimal.\n", " return n\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On teste dans un cas particulier." ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "probabilité d'obtenir le meilleur: 0.363 ~ 1/e = 0.36787944117144233\n", "erreur : 0.004879441171442345 erreur Monte-Carlo maximum probable : 0.02988882127355379\n" ] } ], "source": [ "def main_15():\n", " # Verification que la probabilité d'obtenir\n", " # le meilleur est de l'ordre de 1/e\n", " N=100;\n", " Taille=1000;\n", " \n", " ss=0;\n", " for i in range(Taille):\n", " omega=np.random.permutation(N)+1 # on rajoute 1 pour avoir la notation classique d'une permutation\n", " tirages=temps_optimal(omega,N) \n", " # tirages(i) est il le meilleur ?\n", " if (omega[int(tirages-1)]==1): ss=ss+1;\n", " proba=ss/Taille;\n", " \n", " e=math.exp(1)\n", " p=1/e;\n", " print(\"probabilité d'obtenir le meilleur: \",proba,\"~ 1/e = \",p);\n", " print('erreur :',abs(proba-p),'erreur Monte-Carlo maximum probable :', 1.96*math.sqrt(p*(1-p)/Taille))\n", " \n", "main_15()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Thème de réflexion 1.__ Pourquoi le problème posé avec la\n", " chaîne de Markov $(R_n,0\\leq k\\leq N)$ en lieu et place de\n", " $(S_n,0\\leq k\\leq N)$ donnerait il le même résultat ?\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Thème de réflexion 2.__ Pourquoi le fait de donner une note\n", " suivant une loi uniforme entre l'intervalle réel $[0,20]$ change le\n", " résultat et augmente la probabilité d'obtenir le meilleur candidat\n", " (bien que la loi induite sur les permutations reste la loi\n", " uniforme) ?" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }